{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入路透社的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.datasets import reuters\n",
    "(train_data,train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "加载数据的时候就限定了单词的索引不超过10000，返回的数据就仅包含这10000个单词的了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8982"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(train_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如何解码单词："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'? ? ? said as a result of its december acquisition of space co it expects earnings per share in 1987 of 1 15 to 1 30 dlrs per share up from 70 cts in 1986 the company said pretax net should rise to nine to 10 mln dlrs from six mln dlrs in 1986 and rental operation revenues to 19 to 22 mln dlrs from 12 5 mln dlrs it said cash flow per share this year should be 2 50 to three dlrs reuter 3'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "word_index = reuters.get_word_index()\n",
    "reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])\n",
    "decode_newswire = ' '.join([reverse_word_index.get(i-3, '?') for i in train_data[0]])\n",
    "decode_newswire"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 数据向量化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "# 向量化数据\n",
    "def vectorize_sequences(sequences, dimension=10000):\n",
    "    results = np.zeros((len(sequences), dimension))\n",
    "    for i, sequence in enumerate(sequences):\n",
    "        results[i, sequence] = 1\n",
    "    return results\n",
    "\n",
    "x_train = vectorize_sequences(train_data)\n",
    "x_test = vectorize_sequences(test_data)\n",
    "\n",
    "# 向量化标签\n",
    "def to_one_hot(labels, dimension=46):\n",
    "    results = np.zeros((len(labels), dimension))\n",
    "    for i, label in enumerate(labels):\n",
    "        results[i, label] = 1\n",
    "    return results\n",
    "\n",
    "one_hot_train_labels = to_one_hot(train_labels)\n",
    "one_hot_test_labels = to_one_hot(test_labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于要分类的最终数据有46个分类，因此中间Dense层16维则太小，修改为64维。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:63: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:488: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:3626: The name tf.random_uniform is deprecated. Please use tf.random.uniform instead.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from keras import layers\n",
    "from keras import models\n",
    "\n",
    "model = models.Sequential()\n",
    "model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n",
    "model.add(layers.Dense(64, activation='relu'))\n",
    "model.add(layers.Dense(46, activation='softmax'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "softmax：输出各个位置上的概率的激活函数，所有概率之和 = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/optimizers.py:711: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2857: calling reduce_sum_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "keep_dims is deprecated, use keepdims instead\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2861: The name tf.log is deprecated. Please use tf.math.log instead.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer='rmsprop',\n",
    "             loss='categorical_crossentropy',\n",
    "             metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "编译了模型，categorical_crossentropy用于评估2个概率之间的差值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_val = x_train[:1000]\n",
    "partial_x_train = x_train[1000:]\n",
    "\n",
    "y_val = one_hot_train_labels[:1000]\n",
    "partial_y_train = one_hot_train_labels[1000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow_core/python/ops/math_grad.py:1424: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:671: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:949: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:936: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:2353: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.\n",
      "\n",
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/20\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:158: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:163: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:172: The name tf.global_variables is deprecated. Please use tf.compat.v1.global_variables instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:180: The name tf.is_variable_initialized is deprecated. Please use tf.compat.v1.is_variable_initialized instead.\n",
      "\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:187: The name tf.variables_initializer is deprecated. Please use tf.compat.v1.variables_initializer instead.\n",
      "\n",
      "7982/7982 [==============================] - 1s 157us/step - loss: 2.5306 - acc: 0.4962 - val_loss: 1.7180 - val_acc: 0.6120\n",
      "Epoch 2/20\n",
      "7982/7982 [==============================] - 1s 112us/step - loss: 1.4430 - acc: 0.6878 - val_loss: 1.3435 - val_acc: 0.7060\n",
      "Epoch 3/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 1.0929 - acc: 0.7661 - val_loss: 1.1704 - val_acc: 0.7430\n",
      "Epoch 4/20\n",
      "7982/7982 [==============================] - 1s 113us/step - loss: 0.8682 - acc: 0.8166 - val_loss: 1.0788 - val_acc: 0.7600\n",
      "Epoch 5/20\n",
      "7982/7982 [==============================] - 1s 113us/step - loss: 0.7020 - acc: 0.8483 - val_loss: 0.9844 - val_acc: 0.7830\n",
      "Epoch 6/20\n",
      "7982/7982 [==============================] - 1s 109us/step - loss: 0.5666 - acc: 0.8796 - val_loss: 0.9401 - val_acc: 0.8030\n",
      "Epoch 7/20\n",
      "7982/7982 [==============================] - 1s 112us/step - loss: 0.4592 - acc: 0.9039 - val_loss: 0.9090 - val_acc: 0.8010\n",
      "Epoch 8/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.3704 - acc: 0.9226 - val_loss: 0.9359 - val_acc: 0.7890\n",
      "Epoch 9/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.3036 - acc: 0.9308 - val_loss: 0.8912 - val_acc: 0.8070\n",
      "Epoch 10/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.2539 - acc: 0.9412 - val_loss: 0.9059 - val_acc: 0.8110\n",
      "Epoch 11/20\n",
      "7982/7982 [==============================] - 1s 109us/step - loss: 0.2185 - acc: 0.9471 - val_loss: 0.9152 - val_acc: 0.8120\n",
      "Epoch 12/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.1872 - acc: 0.9511 - val_loss: 0.9045 - val_acc: 0.8150\n",
      "Epoch 13/20\n",
      "7982/7982 [==============================] - 1s 111us/step - loss: 0.1696 - acc: 0.9523 - val_loss: 0.9338 - val_acc: 0.8090\n",
      "Epoch 14/20\n",
      "7982/7982 [==============================] - 1s 111us/step - loss: 0.1531 - acc: 0.9554 - val_loss: 0.9644 - val_acc: 0.8090\n",
      "Epoch 15/20\n",
      "7982/7982 [==============================] - 1s 131us/step - loss: 0.1387 - acc: 0.9555 - val_loss: 0.9697 - val_acc: 0.8120\n",
      "Epoch 16/20\n",
      "7982/7982 [==============================] - 1s 124us/step - loss: 0.1310 - acc: 0.9562 - val_loss: 1.0280 - val_acc: 0.8040\n",
      "Epoch 17/20\n",
      "7982/7982 [==============================] - 1s 130us/step - loss: 0.1214 - acc: 0.9577 - val_loss: 1.0307 - val_acc: 0.7950\n",
      "Epoch 18/20\n",
      "7982/7982 [==============================] - 1s 127us/step - loss: 0.1193 - acc: 0.9582 - val_loss: 1.0454 - val_acc: 0.8080\n",
      "Epoch 19/20\n",
      "7982/7982 [==============================] - 1s 122us/step - loss: 0.1136 - acc: 0.9595 - val_loss: 1.1013 - val_acc: 0.7950\n",
      "Epoch 20/20\n",
      "7982/7982 [==============================] - 1s 124us/step - loss: 0.1104 - acc: 0.9595 - val_loss: 1.0710 - val_acc: 0.8020\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=20,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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f44++ugqn5PK/PnzOfTQQxk4cCCjR4/miy++2P75iWGpE4PdvfDCC9tvzDN48GA2bNiw09s2QdcRiEjGLrsMGvrGW4MGQbQPTWmXXXZhyJAhPPPMM5x00klMnz6d0047DTOjdevWPP7443Ts2JHVq1dz6KGHcuKJJ9Z43967776btm3bsmjRIhYsWFBlGOlJkyaxyy67sHXrVo488kgWLFjApZdeyu23387MmTPp1q3qeJhz585l2rRpvPbaa7g7hxxyCMOHD6dLly4sXryYhx56iN/97necdtppPPbYY2nvL3D22Wdz5513Mnz4cK677jpuvPFGJk+ezM0338wHH3xAq1attjdH3Xbbbdx1110MHTqUjRs30rp16zps7dRUIxCRvJfcPJTcLOTuXH311QwcOJCjjjqKjz/+mJUrV9a4nlmzZm3fIQ8cOJCBAwduX/bII49QUlLC4MGDeeutt2odUO6ll15i9OjRtGvXjvbt23PyySfz4osvArDHHnswaNAgIP1Q1xDuj7B27VqGDx8OwDnnnMOsWbO2xzhu3DgefPDB7VcwDx06lCuuuIIpU6awdu3aBrmyWTUCEclYuiP3OJ100klcfvnlzJs3j02bNnHQQQcBUFZWxqpVq5g7dy5FRUUUFxenHHq6Nh988AG33XYbs2fPpkuXLpx77rk7tZ6ExBDWEIaxrq1pqCZPPfUUs2bN4m9/+xuTJk1i4cKFTJw4keOOO46nn36aoUOHMmPGDPbff/+djhVUIxCRRqB9+/aMHDmS888/v0on8bp16/jWt75FUVERM2fOZHmqG5Qn+e53v8uf/vQnAN58800WLFgAhCGs27VrR6dOnVi5ciXPPPPM9vd06NAhZTv8sGHD+Mtf/sKmTZv48ssvefzxxxk2bFidv1unTp3o0qXL9trEAw88wPDhw9m2bRsfffQRI0eO5JZbbmHdunVs3LiR999/nwEDBnDVVVdx8MEH884779T5M6tTjUBEGoWxY8cyevToKmcQjRs3jhNOOIEBAwZQWlpa65HxhAkTOO+88+jbty99+/bdXrM48MADGTx4MPvvvz+9e/euMoT1+PHjGTVqFD179mTmzJnb55eUlHDuuecyZMgQAC688EIGDx6cthmoJvfddx8XX3wxmzZtYs8992TatGls3bqVM888k3Xr1uHuXHrppXTu3Jlrr72W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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(loss ) + 1)\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label=\"Validation loss\")\n",
    "plt.title('Training and Validation loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/v2LxL5kyRJOP/10unXrRnZ2Nl9++SUQ7jQ+7rjj6NatW2GPqbGlmvXr15OVlQWEriYGDhzI97//fU477bRS99VTTz1VePfxZZddxtatW+nQoQN79uwBQvcdscMVkdT7CMxsAHA/UBt4xN3vKjZ9GPAHYGU06o/urkcHiVRxzZs3p3fv3syYMYNzzz2XKVOmcNFFF2FmNGjQgBdffJFDDjmE9evX893vfpeBAweW+Czd8ePH07BhQxYtWsSCBQuKdCM9duxYmjdvzt69eznttNNYsGAB119/Pffeey/vvPMOLVu2LLKuuXPn8vjjj/PBBx/g7vTp04dTTjmlsH+gyZMn8/DDD3PRRRfxwgsvcOmll+4Xz7PPPsubb77J559/zgMPPMAll1wCQE5ODqNGjWLQoEHs2rWL/Px8ZsyYwcsvv8wHH3xAw4YNC/sNKs3HH3/MggULCrvmjrevFi5cyG9+8xvef/99WrZsycaNG2ncuDGnnnoqr776Kueddx5Tpkzh/PPPp27duuX508WVtERgZrWBB4F+wArgIzOb5u7Fe4R61t2vTVYcIpkg+uGbUgXVQwWJ4NFHHwVCB22333477777LrVq1WLlypWsXbuWVq1axV3Pu+++y/XXXw9Q+BCYAlOnTmXChAnk5eWxevVqFi5cWGR6ce+99x6DBg0q7AX0/PPPZ9asWQwcOJAOHTrQvXt3oOSurufMmUPLli1p164drVu3Zvjw4WzcuJG6deuycuXKwv6KGjRoAIQupa+88koaNmwI7OvCujT9+vUrnK+kffX2229z4YUXFia6gvmvuuoqfv/733Peeefx+OOP8/DDD5e5vUQks2qoN7DE3Ze6+25gCnBuErdXosp8VquIBOeeey4zZ87k448/ZseOHfTs2ROAiRMnsm7dOubOncu8efM4/PDD43Y9XZb//Oc/3HPPPcycOZMFCxZw9tlnH9B6ChR0YQ0ld2M9efJkPv/8c7KysjjyyCPZsmULL7zwQrm3VadOHfLz84HSu6ou77468cQTyc3N5W9/+xt79+4trF6rqGQmgtbAf2OGV0TjihtsZgvM7HkzaxtvRWY2wszmmNmcdevWlSuIgme1LlsG7uF9xAglA5GKatSoEX379mX48OFFGok3b97MYYcdRt26dYt071yS733ve0yaNAmATz/9lAULFgChDvzggw+m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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label=\"Validation Accuracy\")\n",
    "plt.title('Training and Validation accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从图中可以看出，从第九轮过后开始过拟合了。重新一次9轮的训练："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/9\n",
      "7982/7982 [==============================] - 1s 119us/step - loss: 0.1054 - acc: 0.9573 - val_loss: 1.1089 - val_acc: 0.7990\n",
      "Epoch 2/9\n",
      "7982/7982 [==============================] - 1s 113us/step - loss: 0.1016 - acc: 0.9582 - val_loss: 1.1145 - val_acc: 0.8050\n",
      "Epoch 3/9\n",
      "7982/7982 [==============================] - 1s 139us/step - loss: 0.1020 - acc: 0.9585 - val_loss: 1.1015 - val_acc: 0.7950\n",
      "Epoch 4/9\n",
      "7982/7982 [==============================] - 1s 124us/step - loss: 0.1025 - acc: 0.9574 - val_loss: 1.1306 - val_acc: 0.7940\n",
      "Epoch 5/9\n",
      "7982/7982 [==============================] - 1s 115us/step - loss: 0.0967 - acc: 0.9594 - val_loss: 1.1579 - val_acc: 0.8010\n",
      "Epoch 6/9\n",
      "7982/7982 [==============================] - 1s 124us/step - loss: 0.0985 - acc: 0.9565 - val_loss: 1.2322 - val_acc: 0.7880\n",
      "Epoch 7/9\n",
      "7982/7982 [==============================] - 1s 129us/step - loss: 0.0959 - acc: 0.9573 - val_loss: 1.1845 - val_acc: 0.7950\n",
      "Epoch 8/9\n",
      "7982/7982 [==============================] - 1s 123us/step - loss: 0.0918 - acc: 0.9587 - val_loss: 1.2412 - val_acc: 0.7820\n",
      "Epoch 9/9\n",
      "7982/7982 [==============================] - 1s 121us/step - loss: 0.0942 - acc: 0.9579 - val_loss: 1.1899 - val_acc: 0.7940\n",
      "2246/2246 [==============================] - 0s 118us/step\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=9,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))\n",
    "results = model.evaluate(x_test, one_hot_test_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.361384087551521, 0.7827248442204849]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "9轮的训练结果，在测试集上得到了76%的精确度，总体上尚可。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Bones：完全随机的分类算法代码："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.182546749777382"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import copy\n",
    "test_labels_copy=copy.copy(test_labels)\n",
    "np.random.shuffle(test_labels_copy)\n",
    "hits_array = np.array(test_labels) == np.array(test_labels_copy)\n",
    "float(np.sum(hits_array)) / len(test_labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "完全随机的算法得到的正确率大概是18%。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 尝试更大或更小的隐藏层"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 使用 32 个单位的隐藏层："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/20\n",
      "7982/7982 [==============================] - 1s 140us/step - loss: 2.7861 - acc: 0.5209 - val_loss: 2.0205 - val_acc: 0.5890\n",
      "Epoch 2/20\n",
      "7982/7982 [==============================] - 1s 104us/step - loss: 1.7024 - acc: 0.6580 - val_loss: 1.5509 - val_acc: 0.6710\n",
      "Epoch 3/20\n",
      "7982/7982 [==============================] - 1s 105us/step - loss: 1.3286 - acc: 0.7140 - val_loss: 1.3403 - val_acc: 0.7020\n",
      "Epoch 4/20\n",
      "7982/7982 [==============================] - 1s 103us/step - loss: 1.1053 - acc: 0.7544 - val_loss: 1.2142 - val_acc: 0.7290\n",
      "Epoch 5/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.9437 - acc: 0.7915 - val_loss: 1.1570 - val_acc: 0.7350\n",
      "Epoch 6/20\n",
      "7982/7982 [==============================] - 1s 111us/step - loss: 0.8138 - acc: 0.8177 - val_loss: 1.0716 - val_acc: 0.7590\n",
      "Epoch 7/20\n",
      "7982/7982 [==============================] - 1s 106us/step - loss: 0.7029 - acc: 0.8380 - val_loss: 1.0189 - val_acc: 0.7680\n",
      "Epoch 8/20\n",
      "7982/7982 [==============================] - 1s 102us/step - loss: 0.6057 - acc: 0.8647 - val_loss: 1.0149 - val_acc: 0.7670\n",
      "Epoch 9/20\n",
      "7982/7982 [==============================] - 1s 101us/step - loss: 0.5228 - acc: 0.8866 - val_loss: 0.9639 - val_acc: 0.7850\n",
      "Epoch 10/20\n",
      "7982/7982 [==============================] - 1s 107us/step - loss: 0.4528 - acc: 0.9029 - val_loss: 0.9495 - val_acc: 0.8040\n",
      "Epoch 11/20\n",
      "7982/7982 [==============================] - 1s 102us/step - loss: 0.3900 - acc: 0.9174 - val_loss: 0.9447 - val_acc: 0.7990\n",
      "Epoch 12/20\n",
      "7982/7982 [==============================] - 1s 106us/step - loss: 0.3411 - acc: 0.9270 - val_loss: 0.9335 - val_acc: 0.8060\n",
      "Epoch 13/20\n",
      "7982/7982 [==============================] - 1s 111us/step - loss: 0.2962 - acc: 0.9354 - val_loss: 0.9355 - val_acc: 0.8100\n",
      "Epoch 14/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.2631 - acc: 0.9404 - val_loss: 0.9844 - val_acc: 0.8010\n",
      "Epoch 15/20\n",
      "7982/7982 [==============================] - 1s 104us/step - loss: 0.2325 - acc: 0.9450 - val_loss: 0.9547 - val_acc: 0.8010\n",
      "Epoch 16/20\n",
      "7982/7982 [==============================] - 1s 102us/step - loss: 0.2081 - acc: 0.9483 - val_loss: 0.9489 - val_acc: 0.8120\n",
      "Epoch 17/20\n",
      "7982/7982 [==============================] - 1s 102us/step - loss: 0.1890 - acc: 0.9498 - val_loss: 0.9618 - val_acc: 0.8180\n",
      "Epoch 18/20\n",
      "7982/7982 [==============================] - 1s 102us/step - loss: 0.1727 - acc: 0.9526 - val_loss: 0.9682 - val_acc: 0.8190\n",
      "Epoch 19/20\n",
      "7982/7982 [==============================] - 1s 105us/step - loss: 0.1595 - acc: 0.9543 - val_loss: 0.9803 - val_acc: 0.8060\n",
      "Epoch 20/20\n",
      "7982/7982 [==============================] - 1s 103us/step - loss: 0.1487 - acc: 0.9555 - val_loss: 0.9965 - val_acc: 0.8090\n"
     ]
    },
    {
     "data": {
      "image/png": "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lOQ6DBGROmXevHmr3T1hl+s6lwhKSkqYO3dursMQEalTzCzpFfKqGhIRKXBKBCIiBU6JQESkwNW5NgIRya6vv/6aFStWsGXLllyHImlo2rQpHTt2pKioKO3XKBGISEorVqygefPmlJSUEAZ9lXzl7qxZs4YVK1Zw8MHpD95aEFVD5eVQUgINGoTH8hrfGlykcGzZsoW2bdsqCdQBZkbbtm33uvRW70sE5eUwdixs2hSeL1sWngOMGZO7uETqEiWBuqM6f6t6XyK4/vpdSSBm06awXERECiARLE8yonmy5SKSX9asWUPfvn3p27cvBxxwAB06dNj5fNu2bWnt4+KLL+a9995Luc1dd91FeS3VGx977LEsWLCgVvaVDfW+aqhz51AdlGi5iNS+8vJQ4l6+PPyfTZxYs2rYtm3b7jyp3njjjRQXFzN+/PjdtnF33J0GDRL/tr3vvvuqfJ/LLrusym3qq3pfIpg4EZo1231Zs2ZhuYjUrlib3LJl4L6rTS4THTSWLFlC9+7dGTNmDD169GDlypWMHTuWsrIyevTowU033bRz29gv9IqKClq1asWECRPo06cPRx99NJ9//jkAP/nJT5g0adLO7SdMmED//v054ogj+Ne//gXAV199xVlnnUX37t0ZOXIkZWVlVf7yf/jhh+nVqxc9e/bkuuuuA6CiooLzzz9/5/LJkycD8Jvf/Ibu3bvTu3dvzjvvvFo/ZsnU+xJB7JdIbf5CEZHEUrXJZeJ/7t133+XBBx+krKwMgJtvvpk2bdpQUVHB0KFDGTlyJN27d9/tNevWrWPw4MHcfPPNXH311dx7771MmDBhj327O6+//jpPPfUUN910E3/729+48847OeCAA3j88cd54403KC0tTRnfihUr+MlPfsLcuXNp2bIlJ5xwAs888wzt27dn9erVvPnmmwCsXbsWgFtvvZVly5bRuHHjncuyod6XCCB8AZcuhR07wqOSgEhmZLtN7tBDD92ZBACmTp1KaWkppaWlLFq0iHfeeWeP1+yzzz6cdNJJAHzzm99k6dKlCfd95pln7rHNq6++yqhRowDo06cPPXr0SBnf7NmzOf7442nXrh1FRUWce+65zJo1i8MOO4z33nuPK664gunTp9OyZUsAevTowXnnnUd5efleXRBWUwWRCEQkO5K1vWWqTW7ffffdOb948WLuuOMOXnrp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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = models.Sequential()\n",
    "model.add(layers.Dense(32, activation='relu', input_shape=(10000,)))\n",
    "model.add(layers.Dense(32, activation='relu'))\n",
    "model.add(layers.Dense(46, activation='softmax'))\n",
    "model.compile(optimizer='rmsprop',\n",
    "             loss='categorical_crossentropy',\n",
    "             metrics=['accuracy'])\n",
    "x_val = x_train[:1000]\n",
    "partial_x_train = x_train[1000:]\n",
    "\n",
    "y_val = one_hot_train_labels[:1000]\n",
    "partial_y_train = one_hot_train_labels[1000:]\n",
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=20,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(loss ) + 1)\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label=\"Validation loss\")\n",
    "plt.title('Training and Validation loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    "\n",
    "plt.clf()\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label=\"Validation Accuracy\")\n",
    "plt.title('Training and Validation accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "   训练集准确度95%，但验证集准确度下降到了80%。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2. 使用128个单位的隐藏层："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/20\n",
      "7982/7982 [==============================] - 1s 167us/step - loss: 2.1884 - acc: 0.5611 - val_loss: 1.3841 - val_acc: 0.6940\n",
      "Epoch 2/20\n",
      "7982/7982 [==============================] - 1s 133us/step - loss: 1.1231 - acc: 0.7498 - val_loss: 1.1268 - val_acc: 0.7460\n",
      "Epoch 3/20\n",
      "7982/7982 [==============================] - 1s 142us/step - loss: 0.7945 - acc: 0.8277 - val_loss: 0.9590 - val_acc: 0.7900\n",
      "Epoch 4/20\n",
      "7982/7982 [==============================] - 1s 155us/step - loss: 0.5602 - acc: 0.8804 - val_loss: 0.9380 - val_acc: 0.7870\n",
      "Epoch 5/20\n",
      "7982/7982 [==============================] - 1s 138us/step - loss: 0.4184 - acc: 0.9138 - val_loss: 0.9062 - val_acc: 0.8020\n",
      "Epoch 6/20\n",
      "7982/7982 [==============================] - 1s 150us/step - loss: 0.3113 - acc: 0.9349 - val_loss: 0.8518 - val_acc: 0.8290\n",
      "Epoch 7/20\n",
      "7982/7982 [==============================] - 1s 135us/step - loss: 0.2451 - acc: 0.9426 - val_loss: 0.8646 - val_acc: 0.8270\n",
      "Epoch 8/20\n",
      "7982/7982 [==============================] - 1s 113us/step - loss: 0.2015 - acc: 0.9496 - val_loss: 0.9327 - val_acc: 0.8000\n",
      "Epoch 9/20\n",
      "7982/7982 [==============================] - 1s 134us/step - loss: 0.1713 - acc: 0.9520 - val_loss: 0.9962 - val_acc: 0.8050\n",
      "Epoch 10/20\n",
      "7982/7982 [==============================] - 1s 137us/step - loss: 0.1628 - acc: 0.9519 - val_loss: 1.0041 - val_acc: 0.7970\n",
      "Epoch 11/20\n",
      "7982/7982 [==============================] - 1s 136us/step - loss: 0.1419 - acc: 0.9559 - val_loss: 0.9447 - val_acc: 0.8150\n",
      "Epoch 12/20\n",
      "7982/7982 [==============================] - 1s 144us/step - loss: 0.1332 - acc: 0.9550 - val_loss: 0.9474 - val_acc: 0.8190\n",
      "Epoch 13/20\n",
      "7982/7982 [==============================] - 1s 129us/step - loss: 0.1304 - acc: 0.9560 - val_loss: 0.9639 - val_acc: 0.8080\n",
      "Epoch 14/20\n",
      "7982/7982 [==============================] - 1s 130us/step - loss: 0.1256 - acc: 0.9554 - val_loss: 1.0058 - val_acc: 0.8150\n",
      "Epoch 15/20\n",
      "7982/7982 [==============================] - 1s 143us/step - loss: 0.1162 - acc: 0.9572 - val_loss: 1.0527 - val_acc: 0.8040\n",
      "Epoch 16/20\n",
      "7982/7982 [==============================] - 1s 150us/step - loss: 0.1119 - acc: 0.9580 - val_loss: 1.0660 - val_acc: 0.8060\n",
      "Epoch 17/20\n",
      "7982/7982 [==============================] - 1s 147us/step - loss: 0.1133 - acc: 0.9562 - val_loss: 1.1197 - val_acc: 0.8070\n",
      "Epoch 18/20\n",
      "7982/7982 [==============================] - 1s 144us/step - loss: 0.1089 - acc: 0.9579 - val_loss: 1.0494 - val_acc: 0.8030\n",
      "Epoch 19/20\n",
      "7982/7982 [==============================] - 1s 139us/step - loss: 0.1125 - acc: 0.9559 - val_loss: 1.0926 - val_acc: 0.8040\n",
      "Epoch 20/20\n",
      "7982/7982 [==============================] - 1s 112us/step - loss: 0.1015 - acc: 0.9579 - val_loss: 1.0432 - val_acc: 0.8090\n"
     ]
    },
    {
     "data": {
      "image/png": "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kkswM5o2bcr06dM54ogj2LBhA6eddhoXXnhhxuf2PvzwwzRr1owlS5awaNGi/bqRHj9+PG3atGH37t2cc845LFq0iJtvvpkHHniA2bNn065du/3WNX/+fB577DHmzp2Lu3PqqafSv39/WrduzdKlS5kyZQq//OUvueSSS5g2bVqlzxe48sorefDBB+nfvz933XUX//7v/86ECRO49957+fjjjzn00EP3Fkfdf//9PPTQQ/Tt25dt27bRtGnTg9jb6cVeWWxmzYFpwC3uvqUm63D3Se5e7O7F7du3r9sARSTvpRYPpRYLuTt33HEHPXr0YNCgQXzyySesW7cu43rmzJmz94Dco0cPevTosXfaM888Q1FREb1792bx4sVVdij35ptvMnz4cA4//HCaN2/ORRddxBtvvAFA586d6dWrF1B5V9cQno+wadMm+vfvD8BVV13FnDlz9sY4atQoJk+evPcO5r59+3LrrbcyceJENm3aVCd3Nsd6RWBmBYQkUOLuv0szyyfAMSmfO0bjRCQPVXbmHqdhw4bxgx/8gAULFlBaWsopp5wCQElJCevXr2f+/PkUFBRQWFiYtuvpqnz88cfcf//9vPXWW7Ru3Zqrr766RuspV96FNYRurKsqGsrkxRdfZM6cOTz//POMHz+ed955h7FjxzJ06FBeeukl+vbty6xZszjppJNqHCvE22rIgF8DS9z9gQyzzQCujFoPnQZsdve1GeYVkYRq3rw5AwcO5Lvf/e5+lcSbN2/ma1/7GgUFBcyePZsV6R5QnuKss87i6aefBuDdd99l0aJFQOjC+vDDD6dly5asW7eOmTNn7l2mRYsWacvh+/Xrx+9//3tKS0vZvn0706dPp1+/fgf93Vq2bEnr1q33Xk089dRT9O/fnz179rBq1SoGDhzIfffdx+bNm9m2bRsffvgh3bt35/bbb+cf//Efef/99w96mxXFeUXQF7gCeMfMyksV7wCOBXD3XwAvAecBy4BS4JoY4xGRemzkyJEMHz58vxZEo0aN4oILLqB79+4UFxdXeWY8ZswYrrnmGrp06UKXLl32Xln07NmT3r17c9JJJ3HMMcfs14X16NGjGTJkCEcddRSzZ8/eO76oqIirr76aPn36AHDdddfRu3fvSouBMnniiSe44YYbKC0t5bjjjuOxxx5j9+7dXH755WzevBl35+abb6ZV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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = models.Sequential()\n",
    "model.add(layers.Dense(128, activation='relu', input_shape=(10000,)))\n",
    "model.add(layers.Dense(128, activation='relu'))\n",
    "model.add(layers.Dense(46, activation='softmax'))\n",
    "model.compile(optimizer='rmsprop',\n",
    "             loss='categorical_crossentropy',\n",
    "             metrics=['accuracy'])\n",
    "x_val = x_train[:1000]\n",
    "partial_x_train = x_train[1000:]\n",
    "\n",
    "y_val = one_hot_train_labels[:1000]\n",
    "partial_y_train = one_hot_train_labels[1000:]\n",
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=20,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(loss ) + 1)\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label=\"Validation loss\")\n",
    "plt.title('Training and Validation loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    "\n",
    "plt.clf()\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label=\"Validation Accuracy\")\n",
    "plt.title('Training and Validation accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    训练集准确度仍然95%+，验证集准确度仍然80%。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3. 使用1个隐藏层："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/20\n",
      "7982/7982 [==============================] - 1s 161us/step - loss: 2.5030 - acc: 0.5456 - val_loss: 1.7734 - val_acc: 0.6480\n",
      "Epoch 2/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 1.4394 - acc: 0.7161 - val_loss: 1.3166 - val_acc: 0.7280\n",
      "Epoch 3/20\n",
      "7982/7982 [==============================] - 1s 117us/step - loss: 1.0482 - acc: 0.7914 - val_loss: 1.1185 - val_acc: 0.7670\n",
      "Epoch 4/20\n",
      "7982/7982 [==============================] - 1s 118us/step - loss: 0.8199 - acc: 0.8341 - val_loss: 1.0074 - val_acc: 0.7910\n",
      "Epoch 5/20\n",
      "7982/7982 [==============================] - 1s 108us/step - loss: 0.6599 - acc: 0.8666 - val_loss: 0.9346 - val_acc: 0.8100\n",
      "Epoch 6/20\n",
      "7982/7982 [==============================] - 1s 112us/step - loss: 0.5388 - acc: 0.8923 - val_loss: 0.8868 - val_acc: 0.8260\n",
      "Epoch 7/20\n",
      "7982/7982 [==============================] - 1s 118us/step - loss: 0.4445 - acc: 0.9100 - val_loss: 0.8645 - val_acc: 0.8210\n",
      "Epoch 8/20\n",
      "7982/7982 [==============================] - 1s 123us/step - loss: 0.3697 - acc: 0.9236 - val_loss: 0.8377 - val_acc: 0.8250\n",
      "Epoch 9/20\n",
      "7982/7982 [==============================] - 1s 114us/step - loss: 0.3108 - acc: 0.9342 - val_loss: 0.8278 - val_acc: 0.8260\n",
      "Epoch 10/20\n",
      "7982/7982 [==============================] - 1s 115us/step - loss: 0.2656 - acc: 0.9432 - val_loss: 0.8232 - val_acc: 0.8350\n",
      "Epoch 11/20\n",
      "7982/7982 [==============================] - 1s 115us/step - loss: 0.2288 - acc: 0.9465 - val_loss: 0.8322 - val_acc: 0.8230\n",
      "Epoch 12/20\n",
      "7982/7982 [==============================] - 1s 123us/step - loss: 0.1995 - acc: 0.9498 - val_loss: 0.8320 - val_acc: 0.8250\n",
      "Epoch 13/20\n",
      "7982/7982 [==============================] - 1s 127us/step - loss: 0.1782 - acc: 0.9524 - val_loss: 0.8457 - val_acc: 0.8300\n",
      "Epoch 14/20\n",
      "7982/7982 [==============================] - 1s 115us/step - loss: 0.1599 - acc: 0.9543 - val_loss: 0.8484 - val_acc: 0.8300\n",
      "Epoch 15/20\n",
      "7982/7982 [==============================] - 1s 121us/step - loss: 0.1490 - acc: 0.9543 - val_loss: 0.8440 - val_acc: 0.8310\n",
      "Epoch 16/20\n",
      "7982/7982 [==============================] - 1s 121us/step - loss: 0.1359 - acc: 0.9564 - val_loss: 0.8629 - val_acc: 0.8240\n",
      "Epoch 17/20\n",
      "7982/7982 [==============================] - 1s 109us/step - loss: 0.1290 - acc: 0.9557 - val_loss: 0.8762 - val_acc: 0.8230\n",
      "Epoch 18/20\n",
      "7982/7982 [==============================] - 1s 117us/step - loss: 0.1196 - acc: 0.9563 - val_loss: 0.9033 - val_acc: 0.8160\n",
      "Epoch 19/20\n",
      "7982/7982 [==============================] - 1s 128us/step - loss: 0.1133 - acc: 0.9572 - val_loss: 0.9098 - val_acc: 0.8210\n",
      "Epoch 20/20\n",
      "7982/7982 [==============================] - 1s 125us/step - loss: 0.1090 - acc: 0.9569 - val_loss: 0.9349 - val_acc: 0.8170\n"
     ]
    },
    {
     "data": {
      "image/png": "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kJ+fz6pVqwC47bbb6NevH/369dvWhfWyZcvo3bs3v/jFL+jbty/HHHNMhc9JZv78+RxyyCEMGDCAkSNH8s0332z7/PJuqcs7u3v99de3PZhn0KBBrF+/fqf3bTndRyAiKbvySqjvB28NHAjRMTSpTp06MXjwYF544QVGjBjB9OnTOf300zEzWrZsyZNPPskuu+zCqlWrOOSQQzj55JOrfG7vXXfdRevWrVm8eDELFiyo0I30xIkT6dSpE1u2bOGoo45iwYIFXH755dx2223MmDGDLl0qPipl7ty53H///cyePRt35+CDD2bYsGF07NiRJUuWMG3aNO655x5OP/10Hn/88WqfL3D22Wdz5513MmzYMK6//nr+/d//nUmTJnHTTTfxySef0KJFi23VUbfeeitTpkxhyJAhbNiwgZYtW9ZibyenEoGIZL3E6qHEaiF355prrmHAgAEcffTRfP7556xcubLK7cycOXPbAXnAgAEMGDBg27xHH32UgoICBg0axKJFi2rsUG7WrFmMHDmSNm3a0LZtW0455RTeeOMNAHr16sXAgQOB6ru6hvB8hDVr1jBs2DAAzjnnHGbOnLktxjFjxvDwww9vu4N5yJAhXHXVVUyePJk1a9bUy53NKhGISMqqO3OP04gRI/jlL3/JvHnz2LhxIwcddBAARUVFlJaWMnfuXPLy8sjPz0/a9XRNPvnkE2699VbmzJlDx44dOffcc3dqO+XKu7CG0I11TVVDVXnuueeYOXMmzzzzDBMnTmThwoWMHz+eE044geeff54hQ4bw4osvcsABB+x0rKASgYg0AG3btmX48OGcf/75FRqJ165dy6677kpeXh4zZsxgebIHlCc4/PDD+ctf/gLAu+++y4IFC4DQhXWbNm1o3749K1eu5IUXXti2Trt27ZLWww8dOpS//e1vbNy4kW+//ZYnn3ySoUOH1vq7tW/fno4dO24rTfz5z39m2LBhbN26lc8++4zhw4dz8803s3btWjZs2MBHH31E//79+c1vfsO//Mu/8P7779f6MytTiUBEGoTRo0czcuTIClcQjRkzhpNOOon+/ftTWFhY45nxuHHjOO+88+jduze9e/feVrI48MADGTRoEAcccAB77bVXhS6sx44dy7HHHssee+zBjBkztk0vKCjg3HPPZfDgwQBceOGFDBo0qNpqoKo8+OCDXHzx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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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mDH07NmTfv368dVX4QLCW265hfvvv794+TFjxtC3b18OO+ww3nrrLQC+/vprhg0bRteuXTnnnHPIzc0tTlKl5efnc//997N06VIKCwuLpz///PP06dOHnj17MmjQIAA2b97MJZdcQo8ePejRowfTp08vjjVmypQpxQnlwgsvZPTo0fTt25ebbrqJd955h379+tG7d2+OO+44Fi9eDIQk8Ytf/ILu3bvTo0cPHnroIV588UXOOeec4u3OnDmTc889t8p/j2TVnpQlInts2bLKTa+Kjz/+mEmTJpGbmwvAXXfdRatWrSgqKqJ///6cc1chcbcAABEzSURBVM45dO3atcQ6Gzdu5KSTTuKuu+7iuuuu4y9/+Qtjxux+D6q789577/Hcc89xxx138MILL/Dggw/Srl07nnnmGebNm0efPn0SxlVQUMC6des46qijOPfcc5k6dSrXXHMNK1euZPTo0cyaNYvOnTuzbt06IJR02rZty/z583F3NmzYUOF3Lyws5J133qFevXps3LiRWbNm0aBBA1544QVuueUWnnrqKcaPH8+XX37JvHnzqF+/PuvWraNFixZceeWVrF27ltatWzNx4kRGjhxZ2V2/xzJ91ZCIpEGnTpWbXhUHHXRQcRKAcBbep08f+vTpw6JFi1i4cOFu6+y9996cfvrpABx11FEUFBQk3PbZZ5+92zJvvvkmw4cPB6Bnz55069Yt4bpTpkzh/PPPB2D48OHk5+cD8Pbbb9O/f386d+4MQKtWrQB4+eWXi6umzIyWLVtW+N3PPffc4qqwDRs2MGzYMLp3787111/PggULird7xRVXUL9+/eLPq1evHnl5eTz55JOsW7eOOXPmFJdM0kElApEsMHZsyTYCgCZNwvTqts8++xQPL168mN///ve89957tGjRggsvvDDhNe577bVX8XD9+vUpKipKuO1GjRpVuExZ8vPzWbNmDY899hgAX375JUuXVu7alHr16uHuxeOlv0v8d7/55ps57bTT+NnPfsaSJUsYPDjhbVLFRo4cybBhwwA4//zzixNFOqhEIJIF8vJgwgTo3BnMwvuECXvWUFwZmzZtolmzZuy7774UFhbyz3/+s9o/47jjjmPq1KkAfPjhhwlLHAsXLqSoqIgVK1ZQUFBAQUEBN9xwA1OmTOHYY4/ltdde4/PPPwcorhoaOHAg48aNA0KV1Pr166lXrx4tW7Zk8eLF7Ny5k2nTppUZ18aNG2nfPtxD++ijjxZPHzhwIA8//DA7duwo8XkdO3akTZs23HXXXVx66aVV2ymVpEQgkiXy8qCgAHbuDO+pTgIAffr0oWvXrhx++OFcfPHFHHfccdX+GVdddRUrVqyga9eu/PrXv6Zr1640b968xDL5+fkMHTq0xLRhw4aRn5/P/vvvz/jx4znzzDPp2bMnedGOue2221i1ahXdu3enV69ezJo1C4C7776b0047jWOPPZYOHTqUGdeNN97IDTfcQJ8+fUqUIn7605/Srl07evToQc+ePYuTGMAFF1xAly5dOPTQQ6u8XyrD4gOsDXJzc3327NmZDkMk4xYtWsQRRxyR6TAyrqioiKKiIho3bszixYsZNGgQixcvrlWXb8ZcccUV9OvXj0suuaRK20n02zCzOe6em2j52renRETibNmyhQEDBlBUVIS788c//rFWJoFevXrRsmVLHnjggbR/du3bWyIicVq0aMGcOXMyHUaVlXXvQzqojUBEJMspEYiIZDklAhGRLKdEICKS5ZQIRKTS+vfvv9vNYffffz+jR48ud72mTZsC4a7e+E7W4p188slUdIn4/fffz9a426TPOOOMpPoCSlavXr2Ku63IBkoEIlJpI0aMYMqUkp0FT5kyhREjRiS1/gEHHMDTTz+9x59fOhHMmDGjRK+gVbFo0SJ27NjBrFmz+Prrr6tlm4lUtouMVFIiEKkDrr0WTj65el/XXlv2551zzjk8//zzxQ+hKSgo4Msvv+SEE04ovq6/T58+HHnkkTz77LO7rV9QUED37t0B+Oabbxg+fDhHHHEEQ4cO5ZtvvilebvTo0cVdWN92220APPDAA3z55Zf079+f/v37A5CTk8OaNWsAuO++++jevTvdu3cv7sK6oKCAI444gp/85Cd069aNQYMGlficePn5+Vx00UUMGjSoROxLlizh1FNPpWfPnvTp04fPPvsMCHcaH3nkkfTs2bO4x9T4Us2aNWvIyckBQlcTQ4YM4ZRTTmHAgAHl7qtJkyYV33180UUXsXnzZrp06cL27duB0H1H/HhV6D4CEam0Vq1a0bdvX2bOnMmZZ57JlClTOO+88zAzGjduzLRp09h3331Zs2YN3//+9xkyZEiZz9IdP348TZo0YdGiRcyfP79EN9Jjx46lVatW7NixgwEDBjB//nyuvvpq7rvvPl577TXatGlTYltz5sxh4sSJvPvuu7g7xxxzDCeddFJx/0D5+fk88sgjnHfeeTzzzDNceOGFu8Xz1FNP8dJLL/Hxxx/z4IMPcsEFFwCQl5fHmDFjGDp0KNu2bWPnzp3MnDmTZ599lnfffZcmTZoU9xtUng8++ID58+cXd82daF8tXLiQO++8k7feeos2bdqwbt06mjVrxsknn8zzzz/PWWedxZQpUzj77LNp2LBhZf50CSkRiNQB0YlvWsWqh2KJ4M9//jMQOmi76aabeOONN6hXrx4rVqxg1apVtGvXLuF23njjDa6++mqA4ofAxEydOpUJEyZQVFREYWEhCxcuLDG/tDfffJOhQ4cW9wJ69tlnM2vWLIYMGUKXLl3o1asXUHZX17Nnz6ZNmzZ06tSJ9u3bM3LkSNatW0fDhg1ZsWJFcX9FjRs3BkKX0pdddhlNmjQBdnVhXZ6BAwcWL1fWvnr11Vc599xzixNdbPnLL7+ce+65h7POOouJEyfyyCOPVPh5yciKqqHqfFariARnnnkmr7zyCh988AFbt27lqKOOAmDy5MmsXr2aOXPmMHfuXPbff/+EXU9X5D//+Q/33nsvr7zyCvPnz+cHP/jBHm0nJtaFNZTdjXV+fj4ff/wxOTk5HHTQQWzatIlnnnmm0p/VoEEDdu7cCZTfVXVl99Vxxx1HQUEBr7/+Ojt27CiuXquqOp8IYs9q/fxzcN/1rFYlA5Gqadq0Kf3792fkyJElGok3btzIfvvtR8OGDUt071yWE088kSeffBKAjz76iPnz5wOhDnyfffahefPmrFq1ipkzZxav06xZMzZv3rzbtk444QSmT5/O1q1b+frrr5k2bRonnHBCUt9n586dTJ06lQ8//LC4q+pnn32W/Px8mjVrRocOHZg+fToA3377LVu3bmXgwIFMnDixuOE6VjWUk5NT3O1FeY3iZe2rU045hb/+9a+sXbu2xHYBLr74Yi644AIuu+yypL5XMup8IkjXs1pFstGIESOYN29eiUSQl5fH7NmzOfLII5k0aRKHH354udsYPXo0W7Zs4YgjjuDWW28tLln07NmT3r17c/jhh3PBBReU6MJ61KhRDB48uLixOKZPnz5ceuml9O3bl2OOOYbLL7+c3r17J/VdZs2aRfv27TnggAOKp5144oksXLiQwsJCHn/8cR544AF69OjBsccey8qVKxk8eDBDhgwhNzeXXr16ce+99wJw/fXXM378eHr37l3ciJ1IWfuqW7du3HzzzZx00kn07NmT6667rsQ669evT/oKrWTU+W6o69ULJYHSzEK/7CK1lbqhzk5PP/00zz77LI8//niZy6gb6lI6dQrVQYmmi4jUJldddRUzZ85kxowZ1brdOp8I0vmsVhGRVHrwwQdTst0630aQqWe1iqRDbavaldTbk99EnS8RQDjo68AvdU3jxo1Zu3YtrVu3LvNmLcku7s7atWuL73NIVlYkApG6qEOHDixfvpzVq1dnOhSpQRo3bkyHDh0qtY4SgUgt1bBhQ7p06ZLpMKQOqPNtBCIiUj4lAhGRLKdEICKS5WrdncVmthoov/OSzGkDlH0/eeYpvqqp6fFBzY9R8VVNVeLr7O5tE82odYmgJjOz2WXdwl0TKL6qqenxQc2PUfFVTariU9WQiEiWUyIQEclySgTVa0KmA6iA4quamh4f1PwYFV/VpCQ+tRGIiGQ5lQhERLKcEoGISJZTIqgkM+toZq+Z2UIzW2Bm1yRY5mQz22hmc6PXrWmOscDMPow+e7fHuVnwgJktMbP5ZtYnjbEdFrdf5prZJjO7ttQyad9/ZvYXM/vKzD6Km9bKzF4ys8XRe8sy1r0kWmaxmV2Sptj+n5l9HP39pplZizLWLfe3kOIYbzezFXF/xzPKWHewmX0S/R7HpDG+p+JiKzCzuWWsm9J9WNYxJa2/P3fXqxIv4HtAn2i4GfAp0LXUMicD/8hgjAVAm3LmnwHMBAz4PvBuhuKsD6wk3OiS0f0HnAj0AT6Km3YPMCYaHgPcnWC9VsDS6L1lNNwyDbENAhpEw3cnii2Z30KKY7wduD6J38BnwIHAXsC80v9PqYqv1Pz/AW7NxD4s65iSzt+fSgSV5O6F7v5BNLwZWAS0z2xUlXYmMMmDd4AWZva9DMQxAPjM3TN+p7i7vwGsKzX5TOCxaPgx4KwEq54GvOTu69x9PfASMDjVsbn7i+5eFI2+A1Su3+FqVsb+S0ZfYIm7L3X374AphP1ercqLz8LDHM4D8qv7c5NRzjElbb8/JYIqMLMcoDfwboLZ/cxsnpnNNLNuaQ0MHHjRzOaY2agE89sDX8SNLyczyWw4Zf/zZXL/xezv7oXR8Epg/wTL1IR9OZJQwkukot9Cql0ZVV/9pYyqjZqw/04AVrn74jLmp20fljqmpO33p0Swh8ysKfAMcK27byo1+wNCdUdP4EFgeprDO97d+wCnAz83sxPT/PkVMrO9gCHAXxPMzvT+242HcniNu9bazG4GioDJZSySyd/CeOAgoBdQSKh+qYlGUH5pIC37sLxjSqp/f0oEe8DMGhL+YJPd/W+l57v7JnffEg3PABqaWZt0xefuK6L3r4BphOJ3vBVAx7jxDtG0dDod+MDdV5Weken9F2dVrMosev8qwTIZ25dmdinwQyAvOlDsJonfQsq4+yp33+HuO4FHyvjsjP4WzawBcDbwVFnLpGMflnFMSdvvT4mgkqL6xD8Di9z9vjKWaRcth5n1JezntWmKbx8zaxYbJjQqflRqseeAi6Orh74PbIwrgqZLmWdhmdx/pTwHxK7CuAR4NsEy/wQGmVnLqOpjUDQtpcxsMPBLYIi7by1jmWR+C6mMMb7daWgZn/0+cIiZdYlKicMJ+z1dTgU+dvfliWamYx+Wc0xJ3+8vVS3hdfUFHE8oos0H5kavM4ArgCuiZa4EFhCugHgHODaN8R0Yfe68KIabo+nx8RkwjnC1xodAbpr34T6EA3vzuGkZ3X+EpFQIbCfUs/4YaA28AiwGXgZaRcvmAn+KW3cksCR6XZam2JYQ6oZjv8GHo2UPAGaU91tI4/57PPp9zScc1L5XOsZo/AzClTKfpSrGRPFF0x+N/e7ilk3rPiznmJK235+6mBARyXKqGhIRyXJKBCIiWU6JQEQkyykRiIhkOSUCEZEsp0QgEjGzHVayZ9Rq6wnTzHLie74UqUkaZDoAkRrkG3fvlekgRNJNJQKRCkT90d8T9Un/npkdHE3PMbNXo07VXjGzTtH0/S08I2Be9Do22lR9M3sk6nP+RTPbO1r+6qgv+vlmNiVDX1OymBKByC57l6oaOj9u3kZ3PxL4A3B/NO1B4DF370Ho9O2BaPoDwL88dJrXh3BHKsAhwDh37wZsAIZF08cAvaPtXJGqLydSFt1ZLBIxsy3u3jTB9ALgFHdfGnUOttLdW5vZGkK3Cduj6YXu3sbMVgMd3P3buG3kEPqNPyQavxFo6O53mtkLwBZCL6vTPepwTyRdVCIQSY6XMVwZ38YN72BXG90PCH0/9QHej3rEFEkbJQKR5Jwf9/52NPwWobdMgDxgVjT8CjAawMzqm1nzsjZqZvWAju7+GnAj0BzYrVQikko68xDZZW8r+QDzF9w9dglpSzObTzirHxFNuwqYaGY3AKuBy6Lp1wATzOzHhDP/0YSeLxOpDzwRJQsDHnD3DdX2jUSSoDYCkQpEbQS57r4m07GIpIKqhkREspxKBCIiWU4lAhGRLKdEICKS5ZQIRESynBKBiEiWUyIQEcly/x8nG+8xVEsw2wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = models.Sequential()\n",
    "model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n",
    "model.add(layers.Dense(46, activation='softmax'))\n",
    "model.compile(optimizer='rmsprop',\n",
    "             loss='categorical_crossentropy',\n",
    "             metrics=['accuracy'])\n",
    "x_val = x_train[:1000]\n",
    "partial_x_train = x_train[1000:]\n",
    "\n",
    "y_val = one_hot_train_labels[:1000]\n",
    "partial_y_train = one_hot_train_labels[1000:]\n",
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=20,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(loss ) + 1)\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label=\"Validation loss\")\n",
    "plt.title('Training and Validation loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    "\n",
    "plt.clf()\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label=\"Validation Accuracy\")\n",
    "plt.title('Training and Validation accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    训练集准确度：95%+，验证集准确度：80%+。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4. 使用3个隐藏层："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 7982 samples, validate on 1000 samples\n",
      "Epoch 1/20\n",
      "7982/7982 [==============================] - 1s 171us/step - loss: 2.7221 - acc: 0.5220 - val_loss: 1.6893 - val_acc: 0.6460\n",
      "Epoch 2/20\n",
      "7982/7982 [==============================] - 1s 108us/step - loss: 1.3873 - acc: 0.7030 - val_loss: 1.3108 - val_acc: 0.7050\n",
      "Epoch 3/20\n",
      "7982/7982 [==============================] - 1s 89us/step - loss: 1.0577 - acc: 0.7571 - val_loss: 1.1790 - val_acc: 0.7220\n",
      "Epoch 4/20\n",
      "7982/7982 [==============================] - 1s 109us/step - loss: 0.8314 - acc: 0.8107 - val_loss: 1.0538 - val_acc: 0.7760\n",
      "Epoch 5/20\n",
      "7982/7982 [==============================] - 1s 109us/step - loss: 0.6689 - acc: 0.8540 - val_loss: 1.0624 - val_acc: 0.7720\n",
      "Epoch 6/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.5235 - acc: 0.8862 - val_loss: 1.0632 - val_acc: 0.7650\n",
      "Epoch 7/20\n",
      "7982/7982 [==============================] - 1s 112us/step - loss: 0.4176 - acc: 0.9114 - val_loss: 0.9703 - val_acc: 0.8010\n",
      "Epoch 8/20\n",
      "7982/7982 [==============================] - 1s 82us/step - loss: 0.3462 - acc: 0.9238 - val_loss: 0.9712 - val_acc: 0.8150\n",
      "Epoch 9/20\n",
      "7982/7982 [==============================] - 1s 83us/step - loss: 0.2840 - acc: 0.9372 - val_loss: 1.0080 - val_acc: 0.8030\n",
      "Epoch 10/20\n",
      "7982/7982 [==============================] - 1s 111us/step - loss: 0.2416 - acc: 0.9454 - val_loss: 1.1166 - val_acc: 0.7870\n",
      "Epoch 11/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.2054 - acc: 0.9493 - val_loss: 1.1505 - val_acc: 0.7770\n",
      "Epoch 12/20\n",
      "7982/7982 [==============================] - 1s 110us/step - loss: 0.1851 - acc: 0.9525 - val_loss: 1.1224 - val_acc: 0.7910\n",
      "Epoch 13/20\n",
      "7982/7982 [==============================] - 1s 85us/step - loss: 0.1695 - acc: 0.9533 - val_loss: 1.1659 - val_acc: 0.7920\n",
      "Epoch 14/20\n",
      "7982/7982 [==============================] - 1s 83us/step - loss: 0.1565 - acc: 0.9578 - val_loss: 1.0756 - val_acc: 0.7990\n",
      "Epoch 15/20\n",
      "7982/7982 [==============================] - 1s 113us/step - loss: 0.1491 - acc: 0.9568 - val_loss: 1.1166 - val_acc: 0.8090\n",
      "Epoch 16/20\n",
      "7982/7982 [==============================] - 1s 90us/step - loss: 0.1440 - acc: 0.9562 - val_loss: 1.1403 - val_acc: 0.8030\n",
      "Epoch 17/20\n",
      "7982/7982 [==============================] - 1s 82us/step - loss: 0.1331 - acc: 0.9580 - val_loss: 1.2374 - val_acc: 0.7830\n",
      "Epoch 18/20\n",
      "7982/7982 [==============================] - 1s 81us/step - loss: 0.1305 - acc: 0.9559 - val_loss: 1.2676 - val_acc: 0.7820\n",
      "Epoch 19/20\n",
      "7982/7982 [==============================] - 1s 82us/step - loss: 0.1238 - acc: 0.9584 - val_loss: 1.1876 - val_acc: 0.7920\n",
      "Epoch 20/20\n",
      "7982/7982 [==============================] - 1s 90us/step - loss: 0.1226 - acc: 0.9570 - val_loss: 1.2225 - val_acc: 0.7890\n"
     ]
    },
    {
     "data": {
      "image/png": "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5+XlZToMEZFaZdq0aSvcPWmT61qXCPLy8igqKsp0GCIitYqZlXuHvIqGRERynBKBiEiOUyIQEclxta6OQETSa9OmTRQXF7Nx48ZMhyIpaNSoEW3btqVhw4YpL6NEICIVKi4uplmzZuTl5RE6fZVs5e6sXLmS4uJiOnZMvfPWnCgaKiyEvDyoVy/8Laz2o8FFcsfGjRvZc889lQRqATNjzz33rPLVW52/IigshKFDYf368H7hwvAeYPDgzMUlUpsoCdQeO/O/qvNXBDffvC0JlFq/PowXEZEcSARflNOjeXnjRSS7rFy5kp49e9KzZ0/22Wcf9ttvv63vv//++5TWceGFF/Lxxx9XOM+DDz5IYQ2VG//whz9kxowZNbKudKjzRUPt24fioGTjRaTmFRaGK+4vvgi/s5Ejq1cMu+eee249qN5+++00bdqU66+/frt53B13p1695Oe248aNq3Q7V1xxRaXz1FV1/opg5Eho3Hj7cY0bh/EiUrNK6+QWLgT3bXVycTTQmD9/Pl26dGHw4MF07dqVJUuWMHToUAoKCujatSsjRozYOm/pGXpJSQktWrRg+PDhHHLIIRx55JEsW7YMgFtuuYVRo0ZtnX/48OH07t2bgw46iH/9618AfPvtt5xxxhl06dKFgQMHUlBQUOmZ/1NPPUX37t3p1q0bN910EwAlJSWcd955W8ePHj0agPvuu48uXbrQo0cPzj333BrfZ+Wp81cEpWciNXmGIiLJVVQnF8dv7qOPPuKJJ56goKAAgDvvvJM99tiDkpIS+vXrx8CBA+nSpct2y6xevZq+ffty5513cu211/Loo48yfPjwHdbt7rz33nu8/PLLjBgxgr/97W+MGTOGffbZh+eee44PPviA/Pz8CuMrLi7mlltuoaioiObNm3P88cfz6quv0rp1a1asWMGsWbMAWLVqFQB33303CxcuZJdddtk6Lh3q/BUBhC/gggWwZUv4qyQgEo9018l16tRpaxIAGD9+PPn5+eTn5zN37lzmzJmzwzK77bYbJ554IgCHHnooCxYsSLrun/70pzvM8+6773L22WcDcMghh9C1a9cK45s6dSrHHnssrVq1omHDhpxzzjlMmTKFAw44gI8//phhw4YxadIkmjdvDkDXrl0599xzKSwsrNINYdWVE4lARNKjvLq3uOrkmjRpsvX1vHnzuP/++3nz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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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1cycOZM777yT7du3M2LECBYtWkSzZs3YvXs34K50GjRowIoVK1BV9u7dG3K9wTIyMvjiiy9ISEhg3759LFq0iIoVK/LBBx/w8MMPM2PGDMaPH8+2bdtYvnw5FSpUYPfu3dSuXZvbbruNzMxM6tWrx6RJkxgyZEhRd/0JsysCY3wg3GM8ovF4jzPOOCM3CYA7C09JSSElJYU1a9awevXq45Y56aSTuOyyywDo0KED6enpIdfdt2/f4+b59NNPGThwIADJycm0atUq5LLTp09nwIABAAwcOJC0tDQAPv/8c7p160azZs0AqFu3LgCffPIJf/jDHwDXEqdOnTqFfvarr746tyhs79699OvXj9atWzNy5EhWrVqVu97hw4dToUKF3O0lJCQwePBg3nzzTXbv3s3SpUtzr0xiwa4IjPGBp54KXUfw1FMlv63q1avnvl+3bh0vvPACX331FbVr1+a6664L2ca9cuXKue8rVKhAVlZWyHVXqVKl0HnCSUtLY9euXUyePBmAbdu2sXFj0Xq9T0hIILheNf9nCf7so0eP5tJLL+XWW29l/fr19OpV8AMYhwwZQr9+/QAYMGBAbqKIBbsiMMYHBg92FcPNmoGI+1sSFcWF2b9/PzVr1uTkk08mIyODDz/8sMS30blzZ2bOnAnAypUrQ15xrF69mqysLLZu3Up6ejrp6encd999TJ8+nQsuuIAFCxawadMmgNyioR49ejBu3DjAFUnt2bOHhIQE6tSpw7p168jJyWH27Nlh49q3bx+NG7un877++uu543v06MFLL71EdnZ2nu01bdqU+vXr8/TTT3PTTTcVb6cUkSUCY3xi8GBIT4ecHPc32kkAICUlhZYtW3Luuedyww030Llz5xLfxu23387WrVtp2bIlf/zjH2nZsiW1atXKM09aWhp9+vTJM65fv36kpaXRsGFDxo8fz5VXXklycjKDvR3z2GOPsWPHDlq3bk27du1YtGgRAM888wyXXnopF1xwAU2aNAkb1wMPPMB9991HSkpKnquI3//+9zRq1Ii2bduSnJycm8QArr32Wpo3b87ZZ59d7P1SFNZ81JgyqijNR8uzrKwssrKyqFq1KuvWraNnz56sW7curs03T9Tw4cM5//zzufHGG4u1nqI2Hy17e8oYY4IcOHCA7t27k5WVhary8ssvl8kk0K5dO+rUqcOYMWNivu2yt7eMMSZI7dq1Wbp0abzDKLZw9z7EgtURGGOMz1kiMMYYn7NEYIwxPmeJwBhjfM4SgTGmyLp163bczWHPP/88I0aMKHC5GjVqAO6u3uBO1oJ17dqVwpqIP//88xwKuk368ssvj6gvoEi1a9cut9sKP7BEYIwpskGDBjF9+vQ846ZPn86gQYMiWv60007j7bffPuHt508E77//fp5eQYtjzZo1ZGdns2jRIg4ePFgi6wylqF1kRJMlAmPKgbvugq5dS/Z1113ht9e/f3/ee++93IfQpKens23bNi688MLcdv0pKSm0adOGuXPnHrd8eno6rVu3BuDnn39m4MCBtGjRgj59+vDzzz/nzjdixIjcLqwfe+wxAMaMGcO2bdvo1q0b3bp1AyApKYldu3YB8Nxzz9G6dWtat26d24V1eno6LVq04JZbbqFVq1b07Nkzz3aCpaWlcf3119OzZ888sa9fv55LLrmE5ORkUlJS2LBhA+DuNG7Tpg3Jycm5PaYGX9Xs2rWLpKQkwHU10bt3by6++GK6d+9e4L6aMmVK7t3H119/PT/99BPNmzfn6NGjgOu+I3i4OOw+AmNMkdWtW5eOHTsyb948rrzySqZPn84111yDiFC1alVmz57NySefzK5du+jUqRO9e/cO+yzd8ePHU61aNdasWcOKFSvydCP91FNPUbduXbKzs+nevTsrVqzgjjvu4LnnnmPBggXUr18/z7qWLl3KpEmT+PLLL1FVzjvvPC666KLc/oHS0tKYOHEi11xzDbNmzeK66647Lp4ZM2bw8ccfs3btWsaOHcu1114LwODBgxk1ahR9+vTh8OHD5OTkMG/ePObOncuXX35JtWrVcvsNKsg333zDihUrcrvmDrWvVq9ezZNPPsnixYupX78+u3fvpmbNmnTt2pX33nuPq666iunTp9O3b18qVapUlK8uJEsExpQD3olvTAWKhwKJ4NVXXwVcB20PPfQQCxcuJCEhga1bt7Jjxw4aNWoUcj0LFy7kjjvuAMh9CEzAzJkzmTBhAllZWWRkZLB69eo80/P79NNP6dOnT24voH379mXRokX07t2b5s2b065dOyB8V9dLliyhfv36JCYm0rhxY4YMGcLu3bupVKkSW7duze2vqGrVqoDrUvrmm2+mWrVqwLEurAvSo0eP3PnC7at//etfXH311bmJLjD/0KFD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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = models.Sequential()\n",
    "model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n",
    "model.add(layers.Dense(64, activation='relu'))\n",
    "model.add(layers.Dense(64, activation='relu'))\n",
    "model.add(layers.Dense(46, activation='softmax'))\n",
    "model.compile(optimizer='rmsprop',\n",
    "             loss='categorical_crossentropy',\n",
    "             metrics=['accuracy'])\n",
    "x_val = x_train[:1000]\n",
    "partial_x_train = x_train[1000:]\n",
    "\n",
    "y_val = one_hot_train_labels[:1000]\n",
    "partial_y_train = one_hot_train_labels[1000:]\n",
    "history = model.fit(partial_x_train, \n",
    "                   partial_y_train,\n",
    "                   epochs=20,\n",
    "                   batch_size=512,\n",
    "                   validation_data=(x_val, y_val))\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(1, len(loss ) + 1)\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label=\"Validation loss\")\n",
    "plt.title('Training and Validation loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    "\n",
    "plt.clf()\n",
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "\n",
    "epochs = range(1, len(acc) + 1)\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label=\"Validation Accuracy\")\n",
    "plt.title('Training and Validation accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    3个隐藏层的时候，训练集仍然能达到95%准确度，但验证集的准确度反而下降了。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
